package org.baoping.commom.api;
import com.github.pagehelper.PageInfo;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;
/**
 * @Description 分页数据封装类
 * @Author HeZeMin
 * @Date 2020年04月17日 14:52
 */
@Getter
@Setter
public class CommonPage<T> implements Serializable {
    /**
     * 当前页
     */
    private Integer pageNum;
    /**
     * 每页的数量
     */
    private Integer pageSize;
    /**
     * 总页数
     */
    private Integer totalPage;
    /**
     * 总记录数
     */
    private Long total;
    /**
     * 是否有下一页
     */
    private Boolean hasNextPage = false;
    /**
     * 数据
     */
    private List<T> list;

    /**
     *
     * @Description 将PageHelper分页后的list转为分页信息
     * @Param list: 数据源
     * @Return: org.baoping.commom.api.CommonPage<T>
     * @Author HeZeMin
     * @Date 2021年01月12日 9:02
     */
    public static <T> CommonPage<T> restPage(List<T> list) {
        CommonPage<T> result = new CommonPage<T>();
        PageInfo<T> pageInfo = new PageInfo<T>(list);
        result.setTotalPage(pageInfo.getPages());
        result.setPageNum(pageInfo.getPageNum());
        result.setPageSize(pageInfo.getPageSize());
        result.setTotal(pageInfo.getTotal());
        result.setHasNextPage(pageInfo.isHasNextPage());
        result.setList(pageInfo.getList());
        return result;
    }

}
